💯 solving-algo | February 17, 2021
nums
배열에서 각각의 index를 더한 값이 target
이 되는 값을 찾는 문제
https://leetcode.com/problems/two-sum/
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
nums_map = {}
for i, num in enumerate(nums):
nums_map[num] = i
for i, num in enumerate(nums):
if target - num in nums_map and i != nums_map[target - num]:
return nums.index(num), nums_map[target - num]
enumerate
을 이용해 키와 값을 서로 바꿔 dict
에 저장하고, target - num
을 한 값이 nums_map
키에 있으면 return 하는 구조이다.
해시 테이블로 풀 시 O(1)이라는 시간 복잡도를 기대할 수 있기 때문에 매우 빠르다.